/*
引用计数算法

1.核心思想：设置引用数，判断当前引用数是否为0,是否是垃圾对象，为0时通过GC算法回收对象操作

2.引用计数器：因为引用计数方式存在，导致与其他的GC算法在执行效率有所差别

3.引用关系改变时修改引用数字：当某一对象他的引用关系发生改变时，引用计数器会主动去修改当前这个对象的引用数值

4.引用数字为0时，立即回收：查询某一对象空间，某一变量指向他则数值+1，减少-1，当引用数值为0时，触发GC回收机制，然后将当前的对象空间回收
*/


const user1 = { age: 11 }
const user2 = { age: 22 }
const user3 = { age: 33 }
    // 在全局作用域中，nameList引用了user1,user2,user3的对象，因此计数器不为0，GC不被触发
    // 变量存在，不被销毁
const nameList = [user1.age, user2.age, user3.age]

function fn() {
    // const 添加表示该变量只在fn这个作用域生效，当执行调用完这个函数，则变量内存空间计数为0，GC触发回收机制，销毁变量空间
    const num1 = 1
    const num2 = 2
}

fn()